//Annotation still needed
@Entity
public class Customer {
	//Class Customer does not contain any properties anymore
	//Except reference to object instance CustomerRefactored
    private CustomerRefactored customerRefactoredRef;
    //Object instance of class "CustomerRefactored" gets created at 
    //creation time of instance of class Customer
    public Customer() {
        this.customerRefactoredRef = new CustomerRefactored(this);
    }
    //All methods delegate calls to referring object of class 
    //"CustomerRefactored"
    public void setId(Long id) { this.customerRefactoredRef.setId(id); }
    //Annotation still needed
    @Id
    public Long getId() { return this.customerRefactoredRef.getId(); }
    public String getName() {
        return this.customerRefactoredRef.getFirstName() + " " + this.customerRefactoredRef.getLastName();
    }
    //Further getter and setter methods

    //Returns referring object of class "CustomerRefactored"
    public CustomerRefactored getCustomerRefactoredRef(){
        return this.customerRefactoredRef;
    }
}